import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import { resolve } from "path";
import { createHtmlPlugin } from "vite-plugin-html";
// import postcsspxtoviewport from "postcss-px-to-viewport";

// import externalGlobals from "rollup-plugin-external-globals";

// https://vitejs.dev/config/
export default ({ mode }) => {
    const env = loadEnv(mode, process.cwd());
    console.log(env);
    console.log(process.cwd());
    const isMob = env.VITE_TEMPLATE == "mb.html";
    const list = [
        // postcsspxtoviewport({
        //     unitToConvert: "px", // 要转化的单位
        //     viewportWidth: 750, // UI设计稿的宽度
        //     unitPrecision: 6, // 转换后的精度，即小数点位数
        //     propList: ["*"], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
        //     viewportUnit: "vw", // 指定需要转换成的视窗单位，默认vw
        //     fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位，默认vw
        //     selectorBlackList: ["ignore-"], // 指定不转换为视窗单位的类名，
        //     minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
        //     mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
        //     replace: true, // 是否转换后直接更换属性值
        //     // exclude: [/node_modules/], // 设置忽略文件，用正则做目录名匹配
        //     exclude: [],
        //     landscape: false // 是否处理横屏情况
        // })
    ];
    return defineConfig({
        build: {
            sourcemap: false,
            rollupOptions: {
                // external: ["vue", "element-plus"],
                // plugins: [
                //   externalGlobals({
                //     vue: "Vue",
                //     "element-plus": "ElementPlus",
                //   }),
                // ],
            },
            minify: "terser",
            terserOptions: {
                compress: {
                    // drop_console: true,
                    // drop_debugger: true
                }
            }
        },
        plugins: [
            vue(),
            createHtmlPlugin({
                // entry: 'src/main.ts',
                template: env.VITE_TEMPLATE
            })
        ],
        base: "/",
        server: {
            host: "0.0.0.0",
            // proxy: {
            //   "/api": {
            //     target: "http://192.168.150.66:8080",
            //     changeOrigin: true,
            //     rewrite: (path) => path.replace(/^\/api/, ""),
            //   },
            // },
            proxy: {
                // "/api/v1": {
                //   target: "http://192.168.150.66:8080",
                //   changeOrigin: true,
                // },
                // "/api/kline": {
                //   target: "http://192.168.150.188",
                //   changeOrigin: true,
                // },
                // "/api/": {
                //   target: "http://192.168.150.188",
                //   changeOrigin: true,
                // }
            }
        },
        resolve: {
            alias: {
                "@": resolve(__dirname, "./src")
            }
        },
        css: {
            postcss: {
                plugins: isMob ? list : []
            }
        }
    });
};
